package com.sinosoft.jwjw.base;



import net.sf.json.JSONArray;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * 基础mapper
 * @param <T>
 * @param <PK>
 */
public  interface BaseCrudMapper<T, PK extends Serializable> {


    /**
     * 物理删除
     * @param id
     * @return
     */
    int deleteByPrimaryKey(String id);

    /**
     * 新增对象
     * @param record
     * @return
     */
    int insert(T record);


    /**
     * 更新对象所有属性
     * @param record
     * @return
     */
    int updateByPrimaryKey(T record);

    /**
     * 根据id获取对象详情
     * @param id
     * @return
     */
    T selectByPrimaryKey(String id);

    /**
     * 查询所有对象列表
     * @return
     */
    List<T> selectAll();



    /*
     * 分页查询列表
     * 必传参数：
     * 可选参数：@chineseName String
     */
    JSONArray getListPage(Map<String, Object> params);


    /*
     * 逻辑修改用户
     * 必传参数：@id String
     * 可选参数：@chineseName String
     */
    int updateById(Map<String, Object> params);

    /*
     * 逻辑删除对象
     * 必传参数：@id String
     */
    int deleteById(String id);

}
